When two information processing apparatuses communicate via a network, a TCP (Transmission Control Protocol) connection or the like is established between the two information processing apparatuses. When one information processing apparatus is capable of communicating with a plurality of other information processing apparatuses, the information processing apparatus may simultaneously maintain a plurality of connections. As one example, one information processing apparatus receives connection establishment requests from each of a plurality of other information processing apparatuses and establishes new connections in accordance with the received connection establishment requests so that a plurality of connections are maintained between the information processing apparatus and the plurality of other information processing apparatuses.
When a new connection has been established, a memory region including a reception buffer or the like that temporarily holds data received from the peer apparatus is assigned to the new connection. An information processing apparatus that maintains a plurality of connections may clean up old connections based on the passage of time, such as by cutting off old connections that have not been cut off even though a predetermined period has passed from when communication was last performed.
As one example, a Web system that manages connections between an application server and a data server has been proposed. The proposed Web server establishes a plurality of connections between the application server and the data server in advance and places the connections in a connection pool. The Web server dynamically assigns connections to servlets running on the application server. Out of the connections assigned to servlets, the Web server cancels the assignment of connections that have remained in an unused state for a predetermined time.
A computer system where an application server connects to a plurality of database servers has also been proposed. The proposed computer system establishes a plurality of connections, places the connections in a connection pool, and assigns an identifier, which identifies a database server to be connected, to each connection. On detecting a failure on a connection, the computer system deletes the connections to which the same identifier is assigned as the connection on which the failure was detected from the connection pool.
A computer system that controls the number of connections to be maintained between a service user apparatus and a service provider apparatus has also been proposed. The proposed computer system establishes a plurality of connections in advance between the server user apparatus and the server provider apparatus. The computer system monitors the load of the service provider apparatus and when the load has increased, reduces the number of connections that the service user apparatus is able to use.
See, for example, the following documents:
Japanese Laid-open Patent Publication No. 2000-29814;
Japanese Laid-open Patent Publication No. 2007-226398; and
Japanese Laid-open Patent Publication No. 2009-181481.
However, during parallel processing where a program is executed by a plurality of nodes in parallel, a data transfer phase where the plurality of nodes communicate with a specified information processing apparatus at the same time may occur. One example is when a plurality of nodes each perform a so-called “stagein” that copies input data from a specified information processing apparatus, such as a data server, into a local storage apparatus before a program is launched. After the program has ended, the plurality of nodes may each perform a so-called “stageout” that transfers output data from a local storage apparatus to a specified information processing apparatus, such as a data server. In a data transfer phase, a plurality of new connections may be established in a short time between a specified information processing apparatus and a plurality of nodes.
However, when a data transfer phase of parallel processing occurs in a state where a comparatively large number of connections are already being maintained by an information processing apparatus, there is a risk of insufficient memory regions, which may result in nodes not being able to quickly establish new connections and start transferring data. In this situation, there is also the risk that simply waiting for existing connections to be disconnected in keeping with normal disconnection protocols will delay the completion of the data transfer phase and in turn the completion of parallel processing.